1. Technical Field
The present invention relates to a numerically controlled machine tool and more particularly, a software-based numeric control system using an automatic variable linkage mechanism to integrate software components.
2. Discussion of Related Art
Numerical control systems control physical manufacturing processes, such as metal cutting or forming operations, and involve coordinated motion control interacting with discrete digital control signals, across a variety of machine tools. Numerically controlled machine tools range from large, high end, multi ( greater than 3) axis, contouring machine tools with automatic tool changers and automatic pallet loading/unloading to low end two axis lathes, two axis drills and sheet metal punching machines. Some very large machine tools coordinate as many as four or more spindles operating simultaneously.
The central feature of these numerical control systems and their controlled machine tools is a part program (as opposed to a computer program). This program may control all of a sequence of operations including, but not limited to, part loading and unloading, tool selection and changing, spindle speed and feed rate control, and all of the cutting motions required to manufacture a given part.
Paramount to the future of these machine tools is the ability to adapt. To do so, they must be able to; utilize current electronic technology, allow an easy upgrade of vendor supplied features, and accommodate the inclusion of user designed and implemented features. These features may incorporate new ideas that give the machine tool capabilities not planned or understood at the time the machine tool was manufactured.
A xe2x80x9cblack boxxe2x80x9d controller comprises many proprietary hardware circuits that describes the motion and related machining activities to be performed. The controller supplies control signals (i.e., digital or low voltage DC signals), such that there is one signal for each axis of motion. The control signal is fed to a servo device, a type of amplifier that boosts the control signal to the level required for driving the axis motor. A typical axis motor might require a voltage on the order of 220 to 440 volts 3 phase in a large system. The axis motor in turn drives an axis or motion of the machine tool that is ultimately coupled to the tool being controlled. A feedback device (e.g., an encoder or other similar device) may integrate in the servo motor device or attach to the axis or motion to provide a feedback signal to the controller. The feedback device provides the controller with information about the actual position of the axis or motion so that the controller can make automatic corrections if the axis or motion deviates from its commanded position. When feedback is used, the system is said to have a closed loop control.
The xe2x80x9cblack boxxe2x80x9d also contains some form of programmed logic controller. This may be implemented in discrete hardware or use some proprietary soft controller design. The programmed logic is used to watch digital and analog inputs, which monitor controller operation, and to set digital and analog outputs to effect control functions. The logic added to this portion of the control is done in the proprietary language of the control and is difficult or impossible to change by the end user. If special machine specific functions are added to the control, the proprietary control manufacturer must add them.
The first controls were constructed using discrete transistorized circuits. With advancing technology, many of these dedicated discrete circuits were replaced first by mini computers, then by microcomputers. Market leaders in the area of micro-controllers have employed a business strategy that has been to maintain the xe2x80x9cblack boxxe2x80x9d control as a proprietary technology. Although the customer supplies the numerical control part program (describing the desired motion and ancillary machining activities), the customer is given limited documentation and access to the internal workings of the control. The proprietary strategy allows the control manufacturer to require the customer to purchase all of the peripheral components from that manufacturer. These proprietary hardware solutions may use circuits with DSP chips that are programmed in firmware (i.e., burned into EPROMs) to handle the real time computational-intensive tasks.
Machine tool control theory continues to advance. Users who have purchased machine tools would like to add new features as they become available, to improve the accuracy and productivity of their machines. In many cases, the user may want to add a feature giving their company a manufacturing advantage over competitors. For these reasons, it is useful to have a control, which is easy to upgrade and user extendable. Proprietary controls do not allow this capability.
Several software implemented programmable logic controllers are available in the market. To produce a programmed logic control program, the customer often utilizes a third party sequential logic software tool which includes a workbench component and a runtime engine component. The workbench component is a CASE tool editor used to create sequential logic; that is digital input/output objects that define unique inputs and outputs which are to be logically sequenced and connected to one another during configuration. In the workbench, the customer creates sequential logic in terms of some programming language, which is in turn translated into p-code (i.e., pseudo code). A runtime engine then interprets the p-code into native computer instructions for execution. In other words, different runtime engines exist for each sequential logic software tool. The user could use any of these soft programmable logic controllers to add the programmable logic portion to a machine tool control.
Accordingly, a need exists for a software-based numerical control system using off the shelf generic computing hardware such as a PC. This software-based system should allow p-code runtime engines and other user generated capabilities to be integrated programmatically at start up time, based on system requirements dictated by the user
A software-based controller system is provided for numerically controlling a machine tool. The system includes a servo mechanism associated with the numerically controlled system, a real-time module for performing numeric control operations through the use of the servo mechanism, a p-code runtime engine receptive of interpreted program instructions for performing computational operations independent from the control of the servo mechanism, and a messager module communicating with the real-time module and the runtime engine to implement a pointer architecture that facilitates communication between the real-time module and the runtime engine. The messager module defines common locations in a shared memory that are accessible to the real-time module, runtime engine, and messager module. The real-time module and the runtime engine communicate through this shared memory by using a pointer architecture to point from the modules to common locations in shared memory, thereby supporting control operations on the numerically controlled system. The messager facilitates the layout of the shared memory and the setup of pointers for modules accessing the memory by pointer. The messager continues to exist during running to allow reading and writing of variables by messaging for programs which do not require fast real-time access.